#ifndef __SCNS_SSD1306_H__
#define __SCNS_SSD1306_H__

#include "ScnsConfig.h"

#if defined(SCNS_SSD1306_ENABLE)&&SCNS_SSD1306_ENABLE==1

#include "ScnsYing.h"
#include "ScnsBspSsd1306.h"
#include "ScnsLcd.h"

extern ScnsStatus scnsSsd1306Init(ScnsSsd1306Enum ssdN);
extern ScnsStatus scnsSsd1306WriteColor(ScnsSsd1306Enum ssdN,const ScnsColorBinary8 color[],uint32 n,uint8 last,ScnsLock*lock);
extern ScnsStatus scnsSsd1306ReadColor(ScnsSsd1306Enum ssdN,ScnsColorBinary8 color[],uint32 n,uint8 last,ScnsLock*lock);
extern ScnsStatus scnsSsd1306SetAddress(ScnsSsd1306Enum ssdN,Point plu,Point prd,uint8 write);
extern Point scnsSsd1306GetBorder(ScnsSsd1306Enum ssdN);
extern ScnsStatus scnsSsd1306SetBackgroundLight(ScnsSsd1306Enum ssdN,ScnsLcdBackgroundLightStatus status);
extern void scnsSsd1306Sync(ScnsSsd1306Enum ssdN);
#define scnsSsd1306LcdPhysicalConfig(xx,yy)  {.x=(xx),.y=(yy),.fullScreen=0,.writeColorFormat=SCNS_COLOR_FORMAT_BINARY8,.readColorFormat=SCNS_COLOR_FORMAT_BINARY8}

#endif
#endif
